#线性回归模型
from sklearn.linear_model import LinearRegression
#管道机制模型
from sklearn.pipeline import Pipeline
#多项式处理模型PolynomialFeatures
#标准化模型StandardScaler
from sklearn.preprocessing import PolynomialFeatures,StandardScaler
import numpy as np
import matplotlib.pyplot as plt
#创建特征数据
x=np.linspace(-3,3,100)
#创建标签值
#np.random.randn(100)*3：模拟噪声
y=2*x**2+6*x+-3+np.random.randn(100)*3

# plt.scatter(x,y)
# plt.show()
#创建管道模型
#第一个是多项式模型
#第二个是标准化模型
#第三个线性回归模型
poly_reg=Pipeline([('poly',PolynomialFeatures(degree=2)),
                   ('st',StandardScaler()),
                   ('lin_reg',LinearRegression())])
#将特征值维度变为2
X=x.reshape(-1,1)
#拟合数据
poly_reg.fit(X,y)
#输出预测值
y_h=poly_reg.predict(X)
#画图
#样本散点图
plt.scatter(x,y)
#预测值折线图
plt.plot(x,y_h,c='r')
plt.show()